#include "CMenuItem.h"


CMenuItem::CMenuItem(CTexture *image, float Xpos, float Ypos, int width, int height)
{
	m_Image		= image;
	m_Xpos		= Xpos;
	m_Ypos		= Ypos;
	m_nWidth	= width;
	m_nHeight	= height;
}

CMenuItem::~CMenuItem()
{

}


//---------------------------------//
// Name : Release                  //
// Desc : Release an image texture //
//---------------------------------//
void CMenuItem::Release()
{
	if(m_Image)
		m_Image->Release();

	m_Image = NULL;
}


//
// Set methods
//

void CMenuItem::SetTexture(CTexture *image)
{
	m_Image	= image;
}

void CMenuItem::SetPosition(float Xpos, float Ypos)
{
	m_Xpos	= Xpos;
	m_Ypos	= Ypos;
}

void CMenuItem::SetWidth(int newWidth)
{
	m_nWidth = newWidth;
}

void CMenuItem::SetHeight(int newHeight)
{
	m_nHeight = newHeight;
}

void CMenuItem::SetActive(bool isActive)
{
	m_IsActive = isActive;
}

//
// Get methods
//

CTexture* CMenuItem::GetTexture() const
{
	return m_Image;
}

float CMenuItem::GetXpos()
{
	return m_Xpos;
}

float CMenuItem::GetYpos()
{
	return m_Ypos;
}

int CMenuItem::GetWidth()
{
	return m_nWidth;
}

int CMenuItem::GetHeight()
{
	return m_nHeight;
}


//----------------------------//
// Name : Move                //
// Desc : Move this menu item //
//----------------------------//
void CMenuItem::Move(float x, float y)
{
	m_Xpos += x;
	m_Ypos += y;
}


//-------------------------------------------//
// Name : IsPicking                          //
// Desc : This menu item is picking or not ? //
//-------------------------------------------//
bool CMenuItem::IsPicking(float x, float y)
{
	if( x > m_Xpos && x < ( m_Xpos + m_nWidth )
		&& y > m_Ypos && y < ( m_Ypos + m_nHeight ) )
		return true;

	return false;
}